home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 037a / tbw_40.zip / TBDEMO40.BAS < prev    next >
BASIC Source File  |  1987-12-28  |  10KB  |  336 lines

  1. 'Demonstration of TBWINDO
  2. $INCLUDE "TBWINDO.INC"
  3.  
  4. key off
  5. CALL TEXTBORDER(1)
  6. CALL TBWFILL(1,1,25,80,32,FNATTR(7,1))
  7. CALL MAKEWINDOW(2,10,10,35,FNATTR(0,2),FNATTR(10,2),2,3,1)
  8. CALL PRTCWINDOW(3,"TURBO")
  9. DELAY 2
  10. CALL MAKEWINDOW(7,25,10,35,FNATTR(15,4),FNATTR(14,4),2,3,1)
  11. CALL PRTCWINDOW(3,"BASIC")
  12. DELAY 2
  13. CALL MAKEWINDOW(12,40,10,35,FNATTR(0,3),FNATTR(15,3),2,3,1)
  14. CALL PRTCWINDOW(3,"WINDOWS")
  15. DELAY 4
  16. CALL REMOVEWINDOW
  17. DELAY 1
  18. CALL REMOVEWINDOW
  19. DELAY 1
  20. CALL REMOVEWINDOW
  21. 'Put up opening screen
  22. '4 windows of different colors and a Title Window
  23. CALL MAKEWINDOW(4,15,10,30,FNATTR(4,3),FNATTR(4,3),4,3,1)
  24. CALL MAKEWINDOW(3,36,13,40,FNATTR(15,2),FNATTR(15,2),3,3,1)
  25. CALL MAKEWINDOW(9,10,13,40,FNATTR(0,5),FNATTR(0,5),2,3,1)
  26. CALL MAKEWINDOW(12,42,11,36,FNATTR(3,4),FNATTR(3,4),1,3,1)
  27.  
  28. CALL MAKEWINDOW(3,5,7,40,FNATTR(0,7),FNATTR(1,7),2,3,1)
  29.  
  30. CALL PRTCWINDOW(3,"Presenting...")
  31. DELAY 4
  32. CALL MAKEWINDOW(8,20,7,40,FNATTR(0,7),FNATTR(1,7),2,3,1)
  33. CALL PRTCWINDOW(1,"T B W I N D O")
  34. CALL PRTCWINDOW(2,"4.0")
  35. CALL PRTCWINDOW(4,"Windowing Routines for the")
  36. CALL PRTCWINDOW(5,"Borland Turbo BASIC Compiler")
  37.  
  38. DELAY 3
  39. CALL MAKEWINDOW(17,55,7,24,FNATTR(0,2),FNATTR(10,2),1,3,1)
  40. CALL PRTWINDOW(1,2,"By:")
  41. CALL PRTCWINDOW(3,"Rick Fothergill")
  42. CALL PRTCWINDOW(4,"141 Oak Hill Road")
  43. CALL PRTCWINDOW(5,"Pittsfield, MA 01201")
  44.  
  45.  
  46. DELAY 4
  47.  
  48. FOR x = 1 to 7
  49. CALL REMOVEWINDOW
  50. NEXT
  51. CALL MAKEWINDOW(9,16,8,52,FNATTR(0,7),FNATTR(1,7),2,0,0)
  52.  
  53.  
  54. CALL PRTWINDOW(1,2,"The basic  purpose of TBWINDO is to provide")
  55. CALL PRTWINDOW(2,2,"the  fundamental  routines for  implementing")
  56. CALL PRTWINDOW(3,2,"simple 'windowing' into your Turbo BASIC pro-")
  57. CALL PRTWINDOW(4,2,"grams.   With  just a few simple statements,")
  58. CALL PRTWINDOW(5,2,"you can 'pop-up'  a colored  window onto the")
  59. CALL PRTWINDOW(6,2,"screen.")
  60.  
  61. DELAY 3
  62. CALL CLEARWINDOW
  63.  
  64. CALL PRTWINDOW(2,2,"The window can be a solid panel of any of")
  65. CALL PRTWINDOW(4,2,"the BASIC background colors; such as ...")
  66.  
  67. DELAY 4
  68.  
  69. CALL MAKEWINDOW(10,25,7,35,FNATTR(1,2),FNATTR(1,2),0,0,0)
  70.  
  71. DELAY 3
  72. CALL REMOVEWINDOW
  73. CALL CLEARWINDOW
  74.  
  75. CALL PRTWINDOW(2,2,"or it can be surrounded by a 'frame' in any")
  76. CALL PRTWINDOW(4,2,"of five styles...")
  77.  
  78. DELAY 3
  79.  
  80. CALL MAKEWINDOW(5,5,8,35,FNATTR(0,3),FNATTR(0,3),1,0,0)
  81. CALL TITLEWINDOW(1,FNATTR(10,0),"[ Frame Style 1 ]")
  82. CALL MAKEWINDOW(8,8,8,35,FNATTR(14,5),FNATTR(14,5),2,0,0)
  83. CALL TITLEWINDOW(2,FNATTR(10,0),"[ Frame Style 2 ]")
  84. CALL MAKEWINDOW(11,11,8,35,FNATTR(15,4),FNATTR(15,4),3,0,0)
  85. CALL TITLEWINDOW(3,FNATTR(10,0),"[ Frame Style 3 ]")
  86. CALL MAKEWINDOW(14,14,8,35,FNATTR(0,6),FNATTR(14,6),4,0,0)
  87. CALL TITLEWINDOW(1,FNATTR(10,0),"[ Frame Style 4 ]")
  88. CALL MAKEWINDOW(17,17,8,35,FNATTR(0,2),FNATTR(0,2),5,0,0)
  89. CALL TITLEWINDOW(3,FNATTR(10,0),"[ Frame Style 5 ]")
  90.  
  91. DELAY 4
  92. FOR x = 1 to 5
  93. CALL REMOVEWINDOW
  94. NEXT
  95. CALL CLEARWINDOW
  96.  
  97. CALL PRTWINDOW(1,2,"The frame itself can be in any one of the")
  98. CALL PRTWINDOW(2,2,"BASIC foreground colors. It can even blink")
  99. CALL PRTWINDOW(3,2,"if you want...")
  100.  
  101. DELAY 3
  102. FOR i=0 to 15
  103.   label$="[ Color:"+str$(i)+" ]"
  104.   j=rnd(1)*50
  105.   k=rnd(1)*12
  106.   CALL MAKEWINDOW(k+1,j+1,7,25,FNATTR(i,5),FNATTR(i,5),4,2,0)
  107.   CALL TITLEWINDOW(2,FNATTR(i,7),label$)
  108.   DELAY .5
  109. NEXT
  110. CALL MAKEWINDOW(7,20,7,25,FNATTR(31,5),FNATTR(31,5),4,2,0)
  111. CALL TITLEWINDOW(2,FNATTR(31,5),"[ Color: 31 ]")
  112.  
  113. DELAY 4
  114. FOR x = 1 to 17
  115. CALL REMOVEWINDOW
  116. NEXT
  117.  
  118. CALL CLEARWINDOW
  119. CALL PRTCWINDOW(5,"The window itself can be presented in many")
  120. CALL PRTCWINDOW(6,"different ways. It can be flat...")
  121.  
  122. DELAY 3
  123.  
  124. CALL MAKEWINDOW(5,10,10,30,FNATTR(15,5),FNATTR(14,5),1,0,0)
  125. CALL MAKEWINDOW(5,45,10,30,FNATTR(15,5),FNATTR(14,5),1,0,0)
  126.  
  127. DELAY 3
  128. CALL REMOVEWINDOW
  129. CALL REMOVEWINDOW
  130. CALL CLEARWINDOW
  131. CALL PRTCWINDOW(4,"it can have one of four types of shadow underneath")
  132. CALL PRTCWINDOW(6,"this is SOLID black - type 1 left type 2 right")
  133. DELAY 3
  134. CALL MAKEWINDOW(5,10,10,30,FNATTR(15,5),FNATTR(14,5),2,1,0)
  135. CALL PRTCWINDOW(7,"Left Shadow")
  136. DELAY 2
  137. CALL MAKEWINDOW(5,45,10,30,FNATTR(15,2),FNATTR(0,2),2,2,0)
  138. CALL PRTCWINDOW(7,"Right Shadow")
  139. DELAY 2
  140. CALL REMOVEWINDOW
  141. CALL REMOVEWINDOW
  142.  
  143. CALL CLEARWINDOW
  144. CALL PRTCWINDOW(6,"this is SHADOW black - type 3 left type 4 right")
  145. DELAY 3
  146. CALL MAKEWINDOW(5,10,10,30,FNATTR(15,5),FNATTR(14,5),2,3,0)
  147. CALL PRTCWINDOW(7,"Left Shadow")
  148. DELAY 2
  149. CALL MAKEWINDOW(5,45,10,30,FNATTR(15,2),FNATTR(0,2),2,4,0)
  150. CALL PRTCWINDOW(7,"Right Shadow")
  151. DELAY 2
  152. CALL REMOVEWINDOW
  153. CALL REMOVEWINDOW
  154. CALL CLEARWINDOW
  155. CALL PRTCWINDOW(2,"Titles may be placed in any of six different")
  156. CALL PRTCWINDOW(3,"locations, in any color or any combination.")
  157. DELAY 2
  158. CALL MAKEWINDOW(2,5,10,70,FNATTR(15,5),FNATTR(15,5),2,1,0)
  159. FOR x = 1 to 6
  160.   title$ = "[ Location"+str$(x)+" ]"
  161.   CALL TITLEWINDOW(x,FNATTR(rnd(1)*16,rnd(1)*8),title$)
  162.   DELAY 1
  163. NEXT
  164. DELAY 3
  165. CALL REMOVEWINDOW
  166. CALL CLEARWINDOW
  167. CALL PRTCWINDOW(3,"Windows can be zoomed")
  168. CALL PRTCWINDOW(4,"onto the screen.")
  169. DELAY 2
  170. CALL MAKEWINDOW(2,2,15,60,FNATTR(0,2),FNATTR(14,2),2,0,1)
  171. DELAY 2
  172. CALL MAKEWINDOW(13,10,10,60,FNATTR(1,3),FNATTR(15,3),3,0,1)
  173. DELAY 2
  174. CALL MAKEWINDOW(7,33,10,45,FNATTR(14,5),FNATTR(14,5),1,0,1)
  175. DELAY 2
  176. CALL MAKEWINDOW(7,10,12,63,FNATTR(15,4),FNATTR(14,4),2,4,1)
  177. CALL PRTCWINDOW(5,"HOW ABOUT THAT !!!")
  178. DELAY 3
  179. FOR x = 1 to 4
  180. CALL REMOVEWINDOW
  181. NEXT
  182. CALL CLEARWINDOW
  183. CALL PRTWINDOW(1,2,"Once you have your window on the screen, simply")
  184. CALL PRTWINDOW(2,2,"use CALLs to PRTWINDOW or PRTCWINDOW to put text")
  185. CALL PRTWINDOW(3,2,"in them.  A CALL to CLEARWINDOW will erase the")
  186. CALL PRTWINDOW(4,2,"contents of the window ...   ")
  187. DELAY 3
  188.  
  189.  
  190. CALL CLEARWINDOW
  191.  
  192. CALL PRTWINDOW(1,2,"Each window is stored as a result of a CALL to")
  193. CALL PRTWINDOW(2,2,"MAKEWINDOW.  To restore the screen to it's")
  194. CALL PRTWINDOW(3,2,"original contents, simply CALL REMOVEWINDOW.")
  195. CALL PRTWINDOW(4,2,"Here is a good example . . .")
  196. DELAY 5
  197. CALL MAKEWINDOW(3,5,15,45,FNATTR(0,2),FNATTR(14,2),4,3,1)
  198. CALL PRTCWINDOW(6,"This is screen 1 ...")
  199. DELAY 2
  200. CALL MAKEWINDOW(6,29,17,50,FNATTR(15,4),FNATTR(14,4),4,3,1)
  201. CALL PRTCWINDOW(6,"This is screen 2 ...")
  202. DELAY 2
  203. CALL MAKEWINDOW(9,22,15,35,FNATTR(0,3),FNATTR(1,3),4,3,1)
  204. CALL PRTCWINDOW(7,"This is screen 3 ...")
  205. DELAY 2
  206. CALL PRTCWINDOW(7,"Now we will return ...")
  207. DELAY 2
  208. CALL REMOVEWINDOW
  209. CALL PRTCWINDOW(7,"Back to screen 2")
  210. DELAY 2
  211. CALL REMOVEWINDOW
  212. CALL PRTCWINDOW(7,"Back to screen 1")
  213. DELAY 2
  214. CALL REMOVEWINDOW
  215. DELAY 2
  216. CALL CLEARWINDOW
  217. CALL PRTWINDOW(2,2,"Next is a demonstration of the MAKEMENU")
  218. CALL PRTWINDOW(3,2,"procedure which will create a point and")
  219. CALL PRTWINDOW(4,2,"shoot type menu.")
  220. DELAY 3
  221. CALL REMOVEWINDOW
  222.  
  223. CALL TEXTBORDER(7)
  224. CALL TBWFILL(1,1,25,80,32,FNATTR(0,3))
  225. CALL mainmenu
  226. CALL TEXTBORDER(0)
  227. cls
  228.  
  229.  
  230. sub mainmenu
  231. shared item$(),itemcount,startpos
  232. shared curntpos,done
  233. done = 0
  234. curntpos = 0
  235. CALL MAKEWINDOW(10,20,7,40,FNATTR%(15,1),FNATTR(14,1),2,4,0)
  236. CALL TITLEWINDOW(2,FNATTR(0,7),"[ MAIN MENU ]")
  237. while not done
  238.   oldcurntpos = curntpos
  239.   item$(1) = "Pop Screen 1"
  240.   item$(2) = "Pop Screen 2"
  241.   item$(3) = "Pop Screen 3"
  242.   item$(4) = "Second Menu Demo"
  243.   item$(5) = "Exit"
  244.   itemcount = 5
  245.   startpos = 1
  246.   CALL MAKEMENU
  247.   select case curntpos
  248.     case 1 'screen 1
  249.       CALL popscreen1
  250.     case 2 ' screen 2
  251.       CALL popscreen2
  252.     case 3 ' screen 3
  253.       CALL popscreen3
  254.     case 4 ' second menu
  255.       CALL secondmenu
  256.     case else
  257.       CALL REMOVEWINDOW
  258.       curntpos = oldcurntpos
  259.       CALL TEXTBORDER(1)
  260.       CALL TBWFILL(1,1,25,80,32,FNATTR(15,1))
  261.       CALL MAKEWINDOW(9,16,8,52,FNATTR(0,7),FNATTR(1,7),2,0,0)
  262.       CALL PRTWINDOW(3,2,"Please see the source code and documentation")
  263.       CALL PRTWINDOW(4,2,"FOR how to create and use menu windows in")
  264.       CALL PRTWINDOW(5,2,"your programs....")
  265.       DELAY 5
  266.       done = -1
  267.     end select
  268. wend 'done
  269. CALL REMOVEWINDOW
  270. end sub
  271.  
  272. sub popscreen1
  273. CALL MAKEWINDOW(8,10,7,60,FNATTR(0,6),FNATTR(14,6),2,3,1)
  274. CALL TITLEWINDOW(2,FNATTR(0,7),"[ SELECTION 1 ]")
  275. CALL TBWPRINTC(10,10,70,"This is selection no. 1",FNATTR(0,6))
  276. CALL TBWPRINTC(11,10,70,"Press enter to return to main menu...",FNATTR(15,6))
  277. while not instat
  278. wend
  279. a$=inkey$
  280. CALL REMOVEWINDOW
  281. end sub
  282.  
  283. sub popscreen2
  284. CALL MAKEWINDOW(8,10,7,60,FNATTR(0,3),FNATTR(15,3),2,3,1)
  285. CALL TITLEWINDOW(2,FNATTR(10,0),"[ SELECTION 2 ]")
  286. CALL TBWPRINTC(10,10,70,"This is selection no. 2",FNATTR(0,3))
  287. CALL TBWPRINTC(11,10,70,"Press enter to return to main menu...",FNATTR(0,3))
  288. while not instat
  289. wend
  290. a$=inkey$
  291. CALL REMOVEWINDOW
  292. end sub
  293.  
  294. sub popscreen3
  295. CALL MAKEWINDOW(8,10,7,60,FNATTR(14,5),FNATTR(15,5),2,3,1)
  296. CALL TITLEWINDOW(2,FNATTR(0,7),"[ SELECTION 3 ]")
  297. CALL TBWPRINTC(10,10,70,"This is selection no. 3",FNATTR(14,5))
  298. CALL TBWPRINTC(11,10,70,"Press enter to return to main menu...",FNATTR(14,5))
  299. while not instat
  300. wend
  301. a$=inkey$
  302. CALL REMOVEWINDOW
  303. end sub
  304.  
  305. sub secondmenu
  306. shared item$(),itemcount,startpos
  307. shared curntpos,done
  308. CALL MAKEWINDOW(7,25,6,40,FNATTR%(14,2),FNATTR(15,2),2,4,0)
  309. CALL TITLEWINDOW(2,FNATTR(10,0),"[ SECOND MENU DEMO ]")
  310. done = 0
  311. oldcurntpos = curntpos
  312. curntpos = 0
  313. while not done
  314.   item$(1) = "Pop Screen 1"
  315.   item$(2) = "Pop Screen 2"
  316.   item$(3) = "Pop Screen 3"
  317.   item$(4) = "Exit"
  318.   itemcount = 4
  319.   startpos = 3
  320.   CALL MAKEMENU
  321.   select case curntpos
  322.     case 1 'screen 1
  323.       CALL popscreen1
  324.     case 2 ' screen 2
  325.       CALL popscreen2
  326.     case 3 ' screen 3
  327.       CALL popscreen3
  328.     case else
  329.       CALL REMOVEWINDOW
  330.       curntpos = oldcurntpos
  331.       done = -1
  332.   end select
  333. wend 'done
  334. done = 0
  335. end sub
  336.